package routes

import (
	"fmt"
	"multi-cloud-manage/internal/handler"
	"multi-cloud-manage/internal/middleware"
	"multi-cloud-manage/utils"
	"path/filepath"

	"github.com/gin-gonic/gin"
)

// 路由启动
func SetupRoutes() *gin.Engine {
	// 创建路由引擎
	r := gin.Default()
	// 获取当前项目的绝对路径
	dir := utils.GetProjectPath()
	// 托管静态资源
	r.Static("/static", filepath.Join(dir, "static"))
	// 配置模板
	tmpPath := fmt.Sprintf("%v/*", filepath.Join(dir, "templates"))
	r.LoadHTMLGlob(tmpPath)
	// 注册
	r.POST("/register", handler.Register)
	// 登录
	r.POST("/login", handler.Login)
	// 路由路由组，添加token认证，使用中间件鉴权
	auth := r.Group("/admin", middleware.JWTAuth())
	{
		// 添加用户凭证(华为云，阿里云的ak、sk)
		auth.POST("/credentials", handler.AddCredentials)
		// 云服务器列表，添加中间件获取ak，sk
		auth.GET("/resource", middleware.NewProvider(), handler.GetResource)
		// 创建云服务器
		auth.POST("/resource", middleware.NewProvider(), handler.CreateResource)
		// 删除云服务器
		auth.DELETE("/resource", middleware.NewProvider(), handler.DeleteResources)
		// // 修改
		// auth.PUT("/resource")
	}

	// 返回路由引擎
	return r
}
